home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / twi11.zip / TWI.DOC < prev    next >
Text File  |  1992-09-07  |  38KB  |  1,070 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                     Text Windowing Interface
  7.                            Version 1.1
  8.  
  9.  
  10.         An Advanced Interface System For Turbo Pascal 6.0
  11.  
  12.  
  13.                                By,
  14.                            David Pabst
  15.                          18 McAdams Road
  16.                       Framingham, MA 01701
  17.                                USA
  18.  
  19.  
  20.                        Available through 
  21.                         CompuServe EMAIL
  22.                           ID 76547,2643
  23.                               -Or-
  24.                   RelayNet Shareware Conference
  25.  
  26.  
  27.                          copyright 1992
  28.                        all rights reserved
  29.  
  30.  
  31.  
  32.  
  33.                                 
  34.                           Use of TWI is
  35.                        only allowed for a
  36.                       limited 31 day trial
  37.                      period for unregistered
  38.                             versions.
  39. The Text Windowing Interface (TWI) is a Turbo Pascal 6.0
  40. windowing toolkit that replaces Borland's Turbo Vision.  TWI
  41. easily incorporates text and windows together in an attractive
  42. and consistent interface.  TWI is great for new programs, and
  43. even better for old programs that need a new look.
  44.  
  45. Ease Of Use
  46.      With TWI you can give your users a consistent, easy to use,  
  47.      and great looking interface without much work.  When users   
  48.      start to see your great software, you'll start receiving     
  49.      registrations.
  50.  
  51. Windowing
  52.      In the age of windowing you have to have a comprehensive     
  53.      Windowing system to compete with another product.  Even if   
  54.      your program has more features than a competitor's product,  
  55.      but his interface is better; You're going to lose out.
  56.  
  57. Quickly Incorporate TWI Into Your Programs
  58.      The Text Windowing Interface has many procedures that can    
  59.      set the background up, set default colors, and much more.    
  60.      These features are so easy to use, that even an amateur      
  61.      Pascal programmer will be able to use them.
  62.  
  63. Pull Down Menus
  64.      The Text Windowing Interface has support for Pull Down
  65.      Menus.  Pull down menus are now standard in almost every
  66.      program, and are now expected by the computer using public.
  67.  
  68. TWI is Colorful
  69.      TWI has been designed so that users can change the colors of
  70.      the interface, you can even hard code colors, or just call
  71.      the Default Color procedure and don't worry about having to
  72.      set the colors.
  73.  
  74. Support
  75.      When you register TWI, you get:
  76.  
  77.      A) on-line support through Compuserve E-Mail,
  78.  
  79.      B) support through RelayNet ShareWare (unofficial support    
  80.         base) message base (Route To Xevious; To: David Pabst),
  81.  
  82.      C) Text Windowing Interface Source Code, 
  83.  
  84.      D) A reduced upgrade price for all major upgrades (All       
  85.         future versions will be totally registered for you by     
  86.         using your registration code),
  87.  
  88.      E) notification of all future releases, and 
  89.  
  90.      F) A disk with the latest version of TWI.
  91.  
  92.  
  93.                         Table Of Contents
  94.  
  95. License For Shareware Version of TWI . . . . . . . . . . . Page 8
  96.  
  97. License For Registered Version of TWI. . . . . . . . . .  Page 10
  98.  
  99. File Listing . . . . . . . . . . . . . . . . . . . . . .  Page 11
  100.  
  101. Important Information. . . . . . . . . . . . . . . . . .  Page 12
  102.  
  103. The Text Windowing Environment . . . . . . . . . . . . .  Page 13
  104.  
  105. More Important Information . . . . . . . . . . . . . . . .Page 13
  106.  
  107. Colors . . . . . . . . . . . . . . . . . . . . . . . . .  Page 13
  108.  
  109. Setting The Interface Up For The First Time. . . . . . .  Page 13
  110.  
  111. Overall Interface\Background Procedures. . . . . . . . .  Page 15
  112.      Procedure DRAWBACKGROUND. . . . . . . . . . . . . .  Page 15
  113.      Procedure QUICKBKGDRAW. . . . . . . . . . . . . . .  Page 16
  114.      Procedure CHANGESTATUSLINE. . . . . . . . . . . . .  Page 17
  115.      Procedure CHANGEBOTTOMLINE. . . . . . . . . . . . .  Page 17
  116.      Procedure TWICLOSE. . . . . . . . . . . . . . . . .  Page 18
  117.  
  118. Windowing Procedures . . . . . . . . . . . . . . . . . .  Page 19
  119.      Procedure DRAWONELINEWINDOW . . . . . . . . . . . .  Page 19
  120.      Procedure TWIFILELOAD . . . . . . . . . . . . . . .  Page 20
  121.      Procedure DRAWSMALLWINDOW . . . . . . . . . . . . .  Page 21
  122.      Procedure CLEARSMALLWINDOW. . . . . . . . . . . . .  Page 21
  123.      Procedure DRAWMEDIUMWINDOW. . . . . . . . . . . . .  Page 22
  124.      Procedure CLEARMEDIUMWINDOW . . . . . . . . . . . .  Page 22
  125.      Procedure DRAWLARGEWINDOW . . . . . . . . . . . . .  Page 23
  126.      Procedure CLEARLARGEWINDOW. . . . . . . . . . . . .  Page 23
  127.      Procedure DRAWVERYBIGWINDOW . . . . . . . . . . . .  Page 24
  128.      Procedure CLEARVERYBIGWINDOW. . . . . . . . . . . .  Page 24
  129.      Procedure DRAWCOLORBOX. . . . . . . . . . . . . . .  Page 25
  130.      Procedure DRAWFULLWINDOWOUTLINE . . . . . . . . . .  Page 25
  131.  
  132. Pull-Down Menuing Procedures . . . . . . . . . . . . . .  Page 26
  133.      Procedure DRAWMENUS . . . . . . . . . . . . . . . .  Page 26
  134.      Procedure MOVETOLOCAL . . . . . . . . . . . . . . .  Page 26
  135.      Procecedure CLEANOLDLOCATION. . . . . . . . . . . .  Page 27
  136.      Procedure DRAWSUBMENU . . . . . . . . . . . . . . .  Page 27
  137.      Procedure WHERECURSORISREWRITE  . . . . . . . . . .  Page 28
  138.      Procedure OLDPLACEREWRITE . . . . . . . . . . . . .  Page 28
  139.  
  140. Miscellaneous Commands . . . . . . . . . . . . . . . . .  Page 29
  141.      Procedure WAITFORRETURN . . . . . . . . . . . . . .  Page 29
  142.      Procedure DEFAULTCOLORS . . . . . . . . . . . . . .  Page 29
  143.      Procedure WRITEXY . . . . . . . . . . . . . . . . .  Page 30
  144.      Procedure WRITEXYI. . . . . . . . . . . . . . . . .  Page 30
  145.  
  146. Further Help . . . . . . . . . . . . . . . . . . . . . .  Page 31
  147.  
  148. Getting The Latest Version . . . . . . . . . . . . . . .  Page 31
  149.  
  150. Order Form . . . . . . . . . . . . . . . . . . . . . . .  Page 32 License - Unregistered Shareware Copy 
  151.  
  152. CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS.  IF YOU DO NOT
  153. AGREE WITH THEM, YOU SHOULD PROMPTLY DELETE THE ENTIRE TOOLKIT. 
  154. USING THIS SOFTWARE INDICATES YOUR ACCEPTANCE OF THE AGREEMENT.
  155.  
  156. The Text Windowing Interface is not Public Domain or free.  It is
  157. ShareWare.  ShareWare is a way of distributing software so the
  158. user can try the software before purchasing.  
  159.  
  160. Non-Registered users of this software have 31 days to test TWI
  161. before removing it from their system or registering.  Using TWI
  162. after the 31 days without registering is illegal.
  163.  
  164. TWI can not be modified in any respect, for any reason, including
  165. but not limited to, de-compiling, disassembling, or reverse
  166. engineering of TWI.  The registration screen and all of the
  167. menus, help files, and start up files must never be altered,
  168. removed, bypassed, or disabled by any means (the bug-a-boo
  169. registration screens are disabled with the registered copy).
  170.  
  171. You are free to distribute the publicly available shareware
  172. version of TWI to others subject to the above restrictions and
  173. also the following:
  174.  
  175.      A) No fee is charged for its use.
  176.  
  177.      B) No re-numeration may be accepted for TWI.  This           
  178.         does not apply to bulletin board service, online          
  179.         services, etc... membership, subscription, or access      
  180.         charges.
  181.  
  182.      C) TWI must be distributed in un-altered form,
  183.         complete with licensing information, full documentation, 
  184.         and all accompanying files and programs.  The archive 
  185.         must not be altered in any respect.
  186.  
  187.      D) All Shareware vendors must make sure that the version is  
  188.         the unregistered shareware version.  You may request a    
  189.         free evaluation disk. (Shareware houses ONLY)
  190.  
  191.  
  192. Bulletin Board Systems (BBS) may make TWI available for download
  193. only if the above conditions are met.  The archive (TWI11.ZIP)
  194. distributed by me or an equivalent archive may be made available
  195. only in complete form.  Refer to the File Listing for a complete
  196. listing of all the files, use this to verify a complete packet. 
  197. If the contents appear to be altered or not complete, you may
  198. obtain the latest shareware release of TWI for only $5.
  199.  
  200. Vendors must give a description that treats TWI fairly.  It must
  201. be an objective and non-biased review.  Vendors may not refer to
  202. this software as cheap, gaudy, et cetera.  Included with TWI is
  203. VENDORS.DOC which includes a few sample descriptions for TWI. License - Registered Copy
  204.  
  205. The previous license statement does not apply to the registered
  206. version of TWI.  The registered software is protected under
  207. United States Copyright.  It must be treated just like 
  208. commercial software with certain exceptions as follows:
  209.  
  210.      A) I authorize the making of archival copies of the          
  211.         registered version for the sole purpose of backing up     
  212.         your software and protecting your investment from         
  213.         possible loss.
  214.  
  215.      B) The medium on which the registered software is recorded
  216.         is transferred to the customer, but not the title of the 
  217.         software.
  218.  
  219.      C) The software cannot be transferred to anyone.  It can     
  220.         be used only on one computer at a time.  You can have it  
  221.         on two or more computers, BUT IT CAN ONLY BE USED BY ONE  
  222.         PERSON AT ONE TIME.
  223.  
  224. This license is effective until terminated.  You may terminate it
  225. at any time by destroying the software together with all copies,
  226. manuals, disks, saved files, etc..  The license also terminates
  227. if you fail to comply with the terms and conditions of the
  228. license agreement.  
  229.  
  230. Also, by terminating the license, you wave the right to reduced
  231. upgrade fees, upgrade notices, etc.
  232.  
  233. Thanks for taking the time to read the legal information... File Listing
  234.  
  235. These files are included within the Text Windowing Interface
  236. archive.  The following are a semi complete list (any additions
  237. will be in README.DOC).
  238.  
  239. File Name            Description
  240. -----------          -------------
  241. TWI.TPU              Text Windowing Interface UNIT variation 1.
  242. TWI2.TPU             Text Windowing Interface UNIT variation 2.
  243. TWIDEMO.PAS          Demo program for TWI. (pull down menu demo)
  244. TWIDEMO.EXE          Compiled demo program for TWI.
  245. TWIDEMO2.PAS         Another demo program for TWI. (windowing     
  246.                      demo)
  247. TWIDEMO2.EXE         Compiled demo program for TWI.
  248. MENUS.TPU            Pull down menu unit for TWI.TPU (not TWI2).
  249. AWBDUSER.EXE         Another demo of TWI.
  250. TWI.DOC              DOS Text version of documentation.
  251. TWI.WPF              Word Perfect 5.1 version of documentation.
  252. FILE_ID.DIZ          Upload description for BBSs.
  253. README.DOC           Various notes that didn't make it into the   
  254.                      documentation.
  255. HISTORY.DOC          History, upgrade, and improvement            
  256.                      documentation file for TWI.
  257. SHAREWRE.DOC         DOS Text file describing Shareware.
  258. ORDER.DOC            Order form.
  259. CATALOG.EXE          A catalog of software from DSP Software.
  260. VENDORS.DOC          File filled with descriptions for vendors.
  261. TWI_DESC.DOC         Description file for posting in message      
  262.                    bases.
  263. PRINTDOC.BAT         Batch file that will print documentation on  
  264.                     printer.
  265. Important Information
  266.  
  267. The documentation for TWI has been written in such a way that it
  268. should be easy for a person with basic Turbo Pascal understanding
  269. to use.  If you need more help, please contact me at any of my
  270. support boards or services (Further help section).
  271.  
  272. The Text Windowing Interface (TWI) is divided into three separate
  273. parts.  Each part is a unit and has its individual
  274. characteristics.  The three parts are: TWI.TPU, TWI2.TPU, and
  275. MENUS.TPU.
  276.  
  277. TWI.TPU - Variation 1 of TWI
  278.  
  279. The First variation of the Text Windowing Interface has two major
  280. differences from TWI2.TPU.  The first being that if you want to
  281. use pull down menus with TWI.TPU, you must put MENUS.TPU in the
  282. USES clause at the beginning of your program.  The second
  283. difference is that all colors for the windows are passed through
  284. the procedures themselves.
  285.  
  286. TWI2.TPU - Variation 2 of TWI
  287.  
  288. TWI2 includes MENUS.TPU; So if you want to use the menus just
  289. call the procedures.  Second, all colors are passed to the unit
  290. globally. Meaning, all you have to do is type the color variable
  291. + := and the color you want; All the windows and menus will have
  292. that color.
  293.  
  294. MENUS.TPU - Menuing toolkit for TWI.TPU
  295.  
  296. Since TWI.TPU doesn't include MENUS.TPU in it, you must place
  297. MENUS.TPU in the USES clause at the beginning of your program.
  298.  
  299. Basically, if you are using TWI2.TPU then MENUS.TPU does not have
  300. to be included in the USES clause.  Otherwise you must include
  301. both TWI and MENUS in the USES clause of your program.
  302.  
  303. Descriptions of every procedure and function are included within
  304. this documentation; If there is any thing specific to either unit
  305. it will be specifically pointed out. The Text Windowing Environment
  306.  
  307. The Text Windowing Interface Environment is very simple to
  308. program, but very advanced and integrated! There are three major
  309. parts that go into the interface: The Windows, The Colors, and
  310. The BackGround.  As well as, the optional pull down menuing
  311. toolkit.
  312.  
  313. Important
  314.  
  315. If you use TWI2.TPU then you CANNOT use MENUS.TPU with it.  You
  316. cannot use TWI2.TPU and TWI.TPU at the same time.  In TWI2.TPU
  317. make sure you call DEFAULTCOLORS or carefully define all the
  318. color variables before you begin intializing the environment.
  319. Also, make sure you define every variable of text the will be
  320. placed on the screen.  If you don't you'll get lot's of garbage
  321. on the screen.
  322.  
  323. Colors
  324.  
  325. You should initialize all the following variables if you do not
  326. use the DEFAULT COLOR procedure: FGC, BGC, LC, FCCF, FCCB,
  327. HFC(*), HBC(*), and WCOL.  You also have to make Fillchar equal a
  328. character for filling in the background.
  329.  
  330. Description of colors:
  331.  
  332.               FCCF (Foreground Fill Character Color)  
  333.  FCCB (Background Fill Character Color)
  334.               WCOL (Word Color)                    
  335.               FGC (Overall Foreground Color)       
  336.               BGC (Overall Background Color)       
  337.               LC (Line Color For Windows)        
  338.               HFC (Highlight Foreground Color) *
  339.               HBC  (Highlight Background Color) *
  340.               HC   (Highlight color) *
  341.  
  342. * These colors are not initialized by DEFAULTCOLORS and are used
  343. only by menuing functions.
  344.  
  345. Setting The Interface Up For The First Time
  346.  
  347. Your first program using TWI should be kept simple.  If you like
  348. to learning by immersion then dive into the demonstration code
  349. that is included with TWI.  If you don't, please carefully read
  350. through this manual.
  351.  
  352. This is the first sample program.  Let's call it HELLO.PAS:
  353.  
  354.    Program Hello;
  355.    Uses TWI2;
  356.    Begin
  357.     QuickBKGDraw('This Is The Top Of The Screen','This isn't!');
  358.     DefaultColors;
  359.     DrawSmallWindow('This is HELLO.PAS','','','',25,8);
  360.     WaitForReturn;
  361.     TwiClose;
  362.    End.  
  363.  
  364. This is about as simple as writing a program in the Text
  365. Windowing Interface is!  The output that will result is a box in
  366. the middle of the screen, and nothing will happen until you press
  367. return. 
  368.  
  369. If you have problems when you are using TWI feel free to contact
  370. me, and I'll try to help you out.  If you're really having
  371. trouble with your program, its always good to print it out, and
  372. go through and map the code out in your mind.  You should always
  373. comment code in your programs by either using {...} or (*...*). 
  374. Commenting makes it easier for both me (if I have to help you
  375. out), and you later on if you want to upgrade and improve upon
  376. your program.
  377.  
  378. The demonstration programs that I have included is only a small
  379. potential of what TWI can do.  I've included AWBDUSER.EXE that
  380. uses a small portion of TWI (It is from one of my other products,
  381. Alley-Wall) for its interface.  Also, I am developing a full
  382. Shareware electronic messaging system that can be used on
  383. networks and stand alone computers, and it uses TWI throughout.
  384.  
  385. The following pages contain a full description of each command.
  386. All three units have things that are unique to themselves, and
  387. these differences will be pointed out in the following pages. Overall Interface\Background Procedures
  388.  
  389. Procedure DRAWBACKGROUND - Draw Background
  390.     Variation 1 (TWI.TPU): DrawBackGround(Top,Bottom: String;
  391.                            Fillchar: char; fccf, fccb, wcol:
  392.                            integer);
  393.    Variation 2 (TWI2.TPU): DrawBackGround(Top,Bottom : String);
  394.  
  395. Example Usage
  396. For TWI.TPU:
  397.  DRAWBACKGROUND('HELLO',BOTTOMLINE,'░',7,1,4);
  398. For TWI2.TPU:
  399.  DRAWBACKGROUND(TOPLINE,'HELLO');
  400.  
  401. Description
  402.  
  403. Drawing the background is the heart of TWI.  You should almost
  404. always draw the background as one of the first initialization
  405. steps in your program.  Also, if the screen becomes cluttered
  406. with garbage or messed up, just call up DRAWBACKGROUND and you
  407. can redraw the screen.
  408.  
  409. DRAWBACKGROUND initializes the whole interface.  First it paints
  410. the background with the fill character (FILLCHAR : CHAR).  The
  411. FILLCHAR color is defined by FCCF and FCCB.  The Fill-In
  412. Character Color: Foreground (FCCF) and the Fill-In Character:
  413. Background (FCCB) define the color of the FILLCHAR.  FCCF and
  414. FCCB are used any time you clear a window from the screen, or
  415. when the background is effected by a change.
  416.  
  417. Second, it places the status lines on the top and bottom of the
  418. screen. These status lines are referred as TOP,BOTTOM and the
  419. color that they are display in is Word Color (WCOL).
  420.  
  421. Also Refer To: QUICKBKGDRAW, DEFAULTCOLORS, and Setting Colors
  422. Up.
  423. Procedure QUICKBKGDRAW - Quickly Draw Background
  424.   
  425. Twi var 1 and 2: QUICKBKGDRAW(TOP,BOTTOM : STRING);
  426.  
  427. Example Usage
  428.  
  429. QUICKBKGDRAW('THIS IS THE TOP OF THE SCREEN','THIS ISN''T');
  430.  
  431. Description
  432.  
  433. This procedure uses hard-coded color defaults to initialize the
  434. interface.  This procedure should be used if you want to do a
  435. quick program with TWI.  QUICKBKGDRAW benefits you, because you
  436. do not have to initialize and define every color and option.
  437.  
  438. The color defaults for QUICKBKGDRAW and DEFAULTCOLORS are:
  439.           FCCF (Foreground Fill Character Color)  Blue
  440.           FCCB (Background Fill Character Color) White
  441.           WCOL (Word Color)                        Red
  442.           FGC (Overall Foreground Color)          Blue
  443.           BGC (Overall Background Color)         White
  444.           LC (Line Color For Windows)             Blue
  445. ...also thrown in the default background fill character
  446. (FILLCHAR):
  447.           FILLCHAR (Background Fill-In Character)   ░ 
  448.  
  449. In TWI2 all you have to do is type any one of the above variables
  450. and the := plus the value you want to assign to it at any point
  451. in your program.  Even if you use QUICKBKGDRAW, you should call
  452. DEFAULTCOLORS afterwards.
  453.  
  454. In TWI you can change the colors at any time by modifying the
  455. variables in the window procedure. For instance,
  456. DRAWSMALLWINDOW(A,B,C,D,FGC,BGC,LC,X,Y);  You have to either
  457. enter values into those variables, or place them in the VAR in
  458. your program.  Then go through and assign values for colors.
  459. So, you can have DRAWSMALLWINDOW('Hello','','','',1,2,3,4,5); or
  460. you can have it all variables (even a combination of variables
  461. and just sticking the information into the procedure.)
  462. Procedure CHANGESTATUSLINE; - Change status line without          
  463.                             redrawing background
  464.  
  465. TWI variation 1 (TWI.TPU) - CHANGESTATUSLINE(TOP,Bottom: String;  
  466.                           FCCF, FCCB, WCOL : Integer);
  467. TWI variation 2 (TWI2.TPU)- CHANGESTATUSLINE(TOP,BOTTOM: STRING);
  468.  
  469. Example Usage
  470.  
  471. TWI variation 1:
  472.  CHANGESTATUSLINE('',BOTTOM,1,7,4);
  473.  
  474. TWI variation 2:
  475.  CHANGESTATUSLINE('ON TOP','ON BOTTOM');
  476.  
  477. Description
  478.  
  479. Changes the status line on the top and bottom of the screen to
  480. whatever you want.  Remember: If you are using the pull down
  481. menus then make sure that you don't place anything on the top
  482. line.
  483.  
  484. Refer: DRAWBACKGROUND, QUICKBKGDRAW, and CHANGEBOTTOMLINE.
  485.  
  486.  
  487. ------
  488. Procedure CHANGEBOTTOMLINE; - Changes only the bottom status line
  489.  
  490. CHANGEBOTTOMLINE(BOTTOM: STRING; COLOR: INTEGER);
  491.  
  492. Example Usage
  493.  
  494. CHANGEBOTTOMLINE('F1 Help  ESC Exit',4);
  495.  
  496. Description
  497.  
  498. This is very helpful to use instead of CHANGESTATUSLINE when you
  499. are using pull down menus.  There are two reason that you want to
  500. use this procedure when you use pull down menus:
  501.     
  502.           1) It won't affect the line with the menu bar
  503.       2) It makes it easy for you to change the status line
  504.          when the user moves the cursor from one menu option
  505.          to the next. (take a look at the TP6 pull down menus)
  506.  
  507. Basically, all it does is change the status line on the bottom of
  508. the screen.  Enter in a string, and then a color.  To maintain
  509. consistency throughout the interface, (if you are using variables
  510. to contain the colors) you should use WCOL as the color.
  511. Procedure TWICLOSE;  -  Shut TWI down, and end program
  512.  
  513.                             TWICLOSE;
  514.  
  515. Description
  516.  
  517. Shuts the Text Windowing Interface down.  This procedure cleans
  518. up the screen, stops program execution, and makes a quick check
  519. to see if everything is okay.
  520. Windowing Procedures
  521.  
  522. Procedure DRAWONELINEWINDOW; - Draws a window with a single space 
  523.                                of text
  524. TWI variation 1 -  DrawOneLineWindow(A: String; FGC, BGC, LC, X,
  525.                    Y : Integer);
  526. TWI variation 2 -  DrawOneLineWindow(A: String; X, Y : Integer);
  527.  
  528. Example Of Usage
  529.  
  530. TWI.TPU: DRAWONELINEWINDOW(ALine,2,3,4,1,5);
  531. TWI2.TPU: DRAWONELINEWINDOW(ALine,1,5);
  532.  
  533. Description
  534.  
  535. The name says it all.  Draws a small (40 char) one line window.  
  536.  
  537. Refer: DRAWFULLWINDOWOUTLINE
  538.  
  539.  
  540. Procedure TWIFILELOAD; - Loads a file and displays it in a        
  541.                        window.
  542.  
  543. TWI.TPU: TWIFILELOAD(FileName, Title : String; FGC, BGC, LC :   
  544.                      Integer);
  545. TWI2.TPU: TWIFILELOAD(FileName, Title : String);
  546.  
  547. Example Of Usage
  548.  
  549. TWI.TPU: TWIFILELOAD('HELP.HLP','TWI HELP',1,2,3);
  550. TWI2.TPU: TWIFILELOAD('HELP.HLP','MORE HELP');
  551.  
  552. Description
  553.  
  554. TWIFILELOAD draws a box (40x10) and loads a file.  This is very
  555. helpful if you have want to have a help system, or you just want
  556. to load a small file and view it.
  557.  
  558. The file can be up to 10 lines long, and 40 characters wide.  
  559.  
  560. For the filename, you might want to make everything consistent. 
  561. For instance, if your program is BM.EXE then you might have
  562. BM01.HLP, BM02.HLP, et cetera. 
  563.  
  564. As for the title, put anything you want.   There is a limited
  565. space for the title as well.
  566.  
  567. FGC, BGC, and LC are still Foreground color, background color,
  568. and line color.
  569. Procedure DRAWSMALLWINDOW; - Draw a small and compact window
  570.  
  571. TWI Variation 1:
  572.  DRAWSMALLWINDOW(A,B,C,D : String; FGC, BGC, LC, X, Y : Integer);
  573. TWI Variation 2:
  574.  DRAWSMALLWINDOW(A, B, C, D : STRING; X, Y : INTEGER);
  575.  
  576. Usage Example
  577.  
  578. TWI.TPU: DRAWSMALLWINDOW('Yo','Yo','Go','Go',FGC,BGC,LC,1,2);
  579. TWI2.TPU: DRAWSMALLWINDOW('YO','YO','GO','GO',1,2);
  580.  
  581. Description
  582.  
  583. DRAWSMALLWINDOW draws a 4 line window at position you put in the
  584. procedure (X,Y).  The colors that are used by DRAWSMALLWINDOW are
  585. FGC, BGC, and LC.
  586.  
  587. The length of each line in this small window is approximately 35
  588. characters long, and 4 lines long.
  589.  
  590. Refer: CLEARSMALLWINDOW
  591.  
  592. ----
  593.  
  594. Procedure CLEARSMALLWINDOW; - Removes a small window from the     
  595.                             screen
  596.  
  597. TWI Variation 1:
  598.  CLEARSMALLWINDOW(X, Y, FCCF, FCCB : INTEGER);
  599. TWI Variation 2:
  600.  CLEARSMALLWINDOW(X,Y : INTEGER);
  601.  
  602. Example of Usage
  603.  
  604. TWI.TPU: CLEARSMALLWINDOW(1,2,7,1);
  605. TWI2.TPU: CLEARSMALLWINDOW(1,2);
  606.  
  607. Description
  608.  
  609. CLEARSMALLWINDOW removes a small window that was drawn by
  610. DRAWSMALLWINDOW by placing the FILLCHAR over each character of
  611. the small window.
  612.  
  613. X and Y are the coordinates that the window was drawn at, or is
  614. at.  FCCF and FCCB are the colors that are used on the FILLCHAR.
  615.  
  616. Refer: DRAWSMALLWINDOW
  617. Procedure DRAWMEDIUMWINDOW; - Draw a medium sized window
  618.  
  619. TWI Variation 1:
  620.  DRAWMEDIUMWINDOW(A,B,C,D,E,F : String; FGC, BGC, LC, X, Y :
  621.                   Integer);
  622. TWI Variation 2:
  623.  DRAWMEDIUMWINDOW(A, B, C, D, E, F : STRING; X, Y : INTEGER);
  624.  
  625. Usage Example
  626.  
  627. TWI.TPU:                      
  628.  DRAWMEDIUMWINDOW('Yo','Yo','Go','Go','','',FGC,BGC,LC,1,2);
  629. TWI2.TPU: 
  630.  DRAWMEDIUMWINDOW('YO','YO','GO','GO','','',1,2);
  631.  
  632. Description
  633.  
  634. DRAWMEDIUMWINDOW draws a 6 line window at the position you put in
  635. the procedure (X,Y).  The colors that are used by
  636. DRAWMEDIUMWINDOW are FGC, BGC, and LC.
  637.  
  638. The length of each line in this small window is approximately 45
  639. characters long, and 6 lines long.
  640.  
  641. Refer: CLEARMEDIUMWINDOW
  642.  
  643. ----
  644.  
  645. Procedure CLEARMEDIUMWINDOW; - Removes a medium window from the   
  646.                                screen
  647.  
  648. TWI Variation 1:
  649.  CLEARMEDIUMWINDOW(X, Y, FCCF, FCCB : INTEGER);
  650. TWI Variation 2:
  651.  CLEARMEDIUMWINDOW(X,Y : INTEGER);
  652.  
  653. Example of Usage
  654.  
  655. TWI.TPU: CLEARMEDIUMWINDOW(1,2,7,1);
  656. TWI2.TPU: CLEARMEDIUMWINDOW(1,2);
  657.  
  658. Description
  659.  
  660. CLEARMEDIUMWINDOW removes a small window that was drawn by
  661. DRAWMEDIUMWINDOW by placing the FILLCHAR over each character of
  662. the small window.
  663.  
  664. X and Y are the coordinates that the window was drawn at, or is
  665. at.  FCCF and FCCB are the colors that are used on the FILLCHAR.
  666.  
  667. Procedure DRAWLARGEWINDOW; - Draw a large sized window
  668.  
  669. TWI Variation 1:
  670.  DRAWLARGEWINDOW(A,B,C,D,E,F,G,H,I,J : String; FGC, BGC, LC, X, Y 
  671.                 : Integer);
  672. TWI Variation 2:
  673.  DRAWLARGEWINDOW(A, B, C, D, E, F, G, H, I, J : STRING; X, Y :    
  674.                INTEGER);
  675.  
  676. Usage Example
  677.  
  678. TWI.TPU:                      
  679.  DRAWLARGEWINDOW('Yo','Yo','Go','Go','','','WOW',h,i,j,           
  680.                 FGC,BGC,LC,1,2);
  681. TWI2.TPU: 
  682.  DRAWLARGEWINDOW('YO','YO','GO','GO','','','','','','','',1,2);
  683.  
  684. Description
  685.  
  686. DRAWLARGEWINDOW draws a 10 line window at the position you put in
  687. the procedure (X,Y).  The colors that are used by DRAWLARGEWINDOW
  688. are FGC, BGC, and LC.
  689.  
  690. The length of each line in this small window is approximately 45
  691. characters long, and 6 lines long.
  692.  
  693. Refer: CLEARLARGEWINDOW
  694.  
  695. ----
  696.  
  697. Procedure CLEARLARGEWINDOW; - Removes a medium window from the    
  698.                               screen
  699. TWI Variation 1:
  700.  CLEARLARGEWINDOW(X, Y, FCCF, FCCB : INTEGER);
  701. TWI Variation 2:
  702.  CLEARLARGEWINDOW(X,Y : INTEGER);
  703.  
  704. Example of Usage
  705.  
  706. TWI.TPU: CLEARLARGEWINDOW(1,2,7,1);
  707. TWI2.TPU: CLEARLARGEWINDOW(1,2);
  708.  
  709. Description
  710.  
  711. CLEARLARGEWINDOW removes a small window that was drawn by
  712. DRAWLARGEWINDOW by placing the FILLCHAR over each character of
  713. the small window.
  714.  
  715. X and Y are the coordinates that the window was drawn at, or is
  716. at.  FCCF and FCCB are the colors that are used on the FILLCHAR.
  717. Procedure DRAWVERYBIGWINDOW; - Draws a huge window
  718.  
  719. TWI Variation 1:
  720.  DRAWVERYBIGWINDOW(A,B,C,D,E,F,G,H,I,J,K,L,M,N,O : String; FGC,   
  721.                  BGC, LC, X, Y : Integer);
  722. TWI Variation 2:
  723.  DRAWVERYBIGWINDOW(A, B, C, D, E, F, G, H, I, J, K, L, M ,N, O :  
  724.                  STRING; X, Y : INTEGER);
  725.  
  726. Usage Example
  727.  
  728. TWI.TPU:                      
  729.  DRAWVERYBIGWINDOW('Yo','Yo','Go','Go','','','WOW',h,i,j,         
  730.                   FGC,BGC,LC,1,2);
  731. TWI2.TPU: 
  732. DRAWVERYBIGWINDOW('YO','YO','GO','GO','','','','','','','','','',
  733. '','','','',1,2);
  734.  
  735. Description
  736.  
  737. DRAWVERYBIGWINDOW draws a 15 line window that takes up 3/4ths of
  738. the screen at the position you put in the procedure (X,Y).  The
  739. colors that are used by DRAWVERYBIGWINDOW are FGC, BGC, and LC.
  740.  
  741. The length of each line in this small window is approximately 45
  742. characters long, and 6 lines long.
  743.  
  744. Refer: CLEARVERYBIGWINDOW
  745.  
  746. ----
  747.  
  748. Procedure CLEARVERYBIGWINDOW; - Removes a very big window from    
  749.                               the screen
  750. TWI Variation 1:
  751.  CLEARVERYBIGWINDOW(X, Y, FCCF, FCCB : INTEGER);
  752. TWI Variation 2:
  753.  CLEARVERYBIGWINDOW(X,Y : INTEGER);
  754.  
  755. Example of Usage
  756.  
  757. TWI.TPU: CLEARVERYBIGWINDOW(1,2,7,1);
  758. TWI2.TPU: CLEARVERYBIGWINDOW(1,2);
  759.  
  760. Description
  761.  
  762. CLEARVERYBIGWINDOW removes a small window that was drawn by
  763. DRAWVERYBIGWINDOW by placing the FILLCHAR over each character of
  764. the small window.
  765. X and Y are the coordinates that the window was drawn at, or is
  766. at.  FCCF and FCCB are the colors that are used on the FILLCHAR. Procedure DRAWCOLORBOX; - Puts a window on screen with colors
  767.  
  768. TWI Variation 1:
  769.  DrawColorBox(X, Y, FGC, BGC, LC: Integer);
  770. TWI Variation 2:
  771.  DrawColorBox(X, Y : Integer);
  772.  
  773. Example Of Usage
  774.  
  775. TWI.TPU: DrawColorBox(1,1,2,3,4);
  776. TWI2.TPU: DrawColorBox(1,1);
  777.  
  778. Description
  779.  
  780. DRAWCOLORBOX places a window on the screen that contains every
  781. possible combination of colors for IBM text,  that ranges from 1-
  782. 15 in foreground and 1-7 for the background.  You can use this
  783. window to let users modify the interface colors, but you have to
  784. write the actual color changing code and entry system.  
  785.  
  786. ----
  787.  
  788. Procedure DRAWFULLWINDOWOUTLINE; - Draws a box around the side of 
  789.                                    the screen.
  790.  
  791. TWI Variation 1:
  792.  DRAWFULLWINDOWOUTLINE(FGC, BGC, LC : INTEGER);
  793. TWI Variation 2:
  794.  DRAWFULLWINDOWOUTLINE;
  795.  
  796. Example Of Usage:
  797. TWI.TPU: DRAWFULLWINDOWOUTLINE(1, 2, 3);
  798. TWI2.TPU: DRAWFULLWINDOWOUTLINE;
  799.  
  800. Description
  801.  
  802. DRAWFULLWINDOWOUTLINE draws an outline of a box around the
  803. screen.  Anything you want to put on the screen has to be done
  804. manually with WRITEXY, WRITEXYI, GOTOXY, WRITELN, and WRITE.
  805. Pull-Down Menuing Procedures
  806.  
  807. The following procedures are built into TWI2.TPU.  You cannot
  808. place both TWI2 and MENUS in the USES statement of your program,
  809. but you HAVE TO place both TWI and MENUS in the USES statement. 
  810.  
  811. Basically, if you are using TWI2, there is no need to use MENUS,
  812. since it is built into TWI2.  On the other hand, since MENUS
  813. isn't built in to TWI then you must (if you are going to use
  814. menus) place MENUS and TWI in the USES statement.
  815.  
  816. Procedure DRAWMENUS; - Draw the menu bar on the top of the screen
  817.  
  818.                            DRAWMENUS;
  819.  
  820. Description
  821.  
  822. DRAWMENUS will draw the "menu bar" on the top of the screen.  It
  823. reads MENUA..MENUG which is a string of 10 characters.  All you
  824. have to do is before you call DRAWMENUS, type MENUA := 'Title'; 
  825. for MENUA all the way to MENUG.  These MENU titles for the menu
  826. bars are passed to the toolkit, and you don't have to put
  827. anything in the VAR statement.
  828.  
  829. ----
  830.  
  831. Procedure MOVETOLOCAL; - Moves the highlighted part of the cursor 
  832.                          to one of the menu bar titles
  833.  
  834.                MOVETOLOCAL(MoveToPlace : Integer);
  835.  
  836. Description
  837.  
  838. MOVETOLOCAL will highlight a menu bar title.  For MoveToPlace
  839. type an integer from 1 to 8.  If you enter 1, it will make TWI
  840. highlight MENUA, which is the first menu bar option.
  841.  
  842. Refer: CleanOldLocation
  843.  
  844. Procecedure CLEANOLDLOCATION; - De-Highlights a menu bar title
  845.  
  846.             CLEANOLDLOCATION(OldLocation : Integer);
  847.  
  848. Description
  849.  
  850. CLEANOLDLOCATION will dehighlight a menu title that was
  851. highlighted by MOVETOLOCAL.  This is done by switching to the
  852. original colors, and rewriting the menu title to the screen.
  853.  
  854. OLDLOCATION is the position you want to dehighlight.  It can
  855. range from 1 to 8.
  856.  
  857. Refer: MoveToLocal
  858.  
  859. ----
  860.  
  861. Procedure DRAWSUBMENU; - Draws a sub menu
  862.  
  863. DRAWSUBMENU(var SubA, SubB, SubC, SubD, SubE, SubF, SubG, SubH :  
  864.                String; X, Y, LGTH: Integer);
  865.  
  866. Example Of Usage
  867.  
  868. DRAWSUBMENU(SUBA,SUBB,SUBC,SUBD, SUBE, SUBF, SUBG, SUBH, 2, 2,    
  869.          2);
  870.  
  871. Description
  872.  
  873. DRAWSUBMENU is a procedure that draws a sub menu that can have up
  874. to 8 options.  
  875.  
  876. Its length is determined by LGTH which is an integer.  If you
  877. only have one option in the sub menu then set LGth to 1, et
  878. cetera.  
  879.  
  880. X and Y determine its position  on the screen.  I have found that
  881. it works best if you place it right below the menu bar.  So that
  882. would usually be that Y would be 2, and X would be a multiple of
  883. 10 up to 80. (10 div 80 equals 8, and there are 8 menu titles).
  884.  
  885. SUBA..SUBH must be variables or your program will not compile.
  886. These variables tells TWI what to put in your submenu.
  887.  
  888. Refer: WHERECURSORISREWRITE, and OLDPLACEREWRITE
  889. Procedure WHERECURSORISREWRITE - Highlights an option in the      
  890.                                    submenu 
  891.  
  892. WHERECURSORISREWRITE(PLACEX, PLACEY : INTEGER; OPTION : STRING);
  893.  
  894. Example Of Usage
  895.  
  896. WHERECURSORISREWRITE(3,3,SUBA);
  897.  
  898. Description
  899.  
  900. WHERECURSORISREWRITE will highlight an option in a submenu drawn
  901. by using DRAWSUBMENU.  
  902.  
  903. PLACEX and PLACEY are where the option you want to highlight is,
  904. and OPTION is the actual string of the option.  So if you draw
  905. window at 1,1 on the screen, and want to highlight the first
  906. option; Then use WHERECURSORISREWRITE(3,2,SUBA);.
  907.  
  908. Refer: DRAWSUBMENU and OLDPLACEREWRITE
  909.  
  910. ----
  911.  
  912. Procedure OLDPLACEREWRITE - De-Highlights an option in the
  913. submenu                               that was highlighted by     
  914.                                         WHERECURSORISREWRITE
  915.  
  916.     OLDPLACEREWRITE(PLACEX, PLACEY: INTEGER; OPTION: STRING);
  917.  
  918. Example Of Usage
  919.  
  920. OLDPLACEREWRITE(3,3,SUBA);
  921.  
  922. Description
  923.  
  924. OLDPLACEREWRITE will de-highlight an option highlighted by using
  925. OLDPLACEREWRITE.  
  926.  
  927. PLACEX and PLACEY tells the menu where the option you want to
  928. turn back to normal is.  OPTION is the actual string that the
  929. option you are de-highlighted is. 
  930.  
  931. Refer: WHERECURSORISREWRITE Miscellaneous Commands
  932.  
  933. Procedure WAITFORRETURN; - Wait for user to press return
  934.  
  935.                          WAITFORRETURN;
  936.  
  937. Description
  938.  
  939. WAITFORRETURN waits for the user to press return.  Nothing is
  940. placed on the screen by this procedure.  So, you probably should
  941. place something on the screen that tells the user that they have
  942. to push return.
  943.  
  944. ----
  945.  
  946. Procedure DEFAULTCOLORS; - Set colors to defaults
  947.  
  948.                          DEFAULTCOLORS;
  949.  
  950. NOTE: Only available in TWI2.TPU.
  951.  
  952. Description
  953.  
  954. DEFAULTCOLORS sets the colors of the interface to preset, hard-
  955. coded defaults.  These defaults can be changed at any time during
  956. program execution by changing the color variable values. You do
  957. not have to use this procedure when calling QUICKBKGDRAW, but you
  958. must if you want to use any windows. (You can manually initialize
  959. and assign values to the color variables)
  960.  
  961. Color defaults in DEFAULTCOLORS:
  962.  
  963. FCCF (Foreground Fill Character Color)  Blue
  964.           FCCB (Background Fill Character Color) White
  965.           WCOL (Word Color)                        Red
  966.           FGC (Overall Foreground Color)          Blue
  967.           BGC (Overall Background Color)         White
  968.           LC (Line Color For Windows)             Blue
  969. ...also thrown in the default background fill character
  970. (FILLCHAR):
  971.           FILLCHAR (Background Fill-In Character)   ░ 
  972.  
  973. Refer: QUICKBKGDRAW
  974. Procedure WRITEXY; - Write to any point on the screen
  975.  
  976.              WRITEXY(X,Y : INTEGER; TEXT : STRING);
  977.  
  978. Example Of Usage
  979.  
  980. WriteXY(5,5,'I am at point 5,5 on the screen!');
  981.  
  982. Description
  983.  
  984. WRITEXY is a simple screen writing procedure that I wrote for one
  985. simple reason: save a couple of lines of space.  Originally,
  986. every time I wanted to place something at a particular point on
  987. the screen, I would have to use GOTOXY and WRITE.  Now I just
  988. call WRITEXY.
  989.  
  990. Refer: WRITEXYI;
  991.  
  992. ----
  993.  
  994. Procedure WRITEXYI; - Write an integer to a point on the screen
  995.  
  996.                  WRITEXYI(X, Y, TEXT : INTEGER);
  997.  
  998. Example Of Usage
  999.  
  1000. WriteXYI(5,5,5);
  1001.  
  1002. Description
  1003.  
  1004. WRITEXYI does what WRITEXY does (write to a point on the screen),
  1005. but WRITEXYI writes integers instead of strings.
  1006.  
  1007. Refer: WRITEXY;
  1008.  
  1009. Further Help
  1010.  
  1011. If you need more help with TWI or anything else that is related
  1012. to the interface, please contact me by mail or electronic mail at
  1013. any time.  I can be contacted on COMPUSERVE, please send mail in
  1014. the EMAIL (go mail) and post a message to 76547,2643.  I can also
  1015. be contacted on INTERNET: 76547.2643@compuserv.com or
  1016. david.pabst@channel1.com.  I can also be contacted on the
  1017. RelayNet message bases: SHAREWARE and TURBO PASCAL.
  1018.  
  1019. Also, you can directly call )(evious at (508)875-3618 (up to
  1020. 14400bps), and leave a message in the EMAIL conference to me.
  1021.  
  1022. May home address is:
  1023.                          18 McAdams Road
  1024.                       Framingham, MA 01701
  1025.                                USA
  1026.  
  1027. Getting The Latest Version
  1028.  
  1029. The latest version may be found on Compuserve, )(evious (508-875-
  1030. 3618), or your local bulletin board.  If you can't find it in a
  1031. Shareware catalog or on a BBS you can mail away for a shareware
  1032. evaluation copy ($5).
  1033. Order Form 
  1034.   *** Use this form, the form in ORDER.DOC, or in CATALOG.EXE ***
  1035.  
  1036. NAME:____________________________________________________________
  1037.  
  1038. ADDRESS:________________________________________________APT:_____
  1039.  
  1040. CITY:____________________________________________ZIP:____________
  1041.  
  1042. COUNTRY__________________________________________________________
  1043.  
  1044. Voice phone (optional):__________________________________________
  1045.  
  1046. Data phone (if a BBS):___________________________________________
  1047.  
  1048. Version of TWI you are using?  1.1
  1049.  
  1050. Disk Format (Circle):   5.25"   3.5"
  1051.  
  1052. Do you have a high density disk drive:___________
  1053.  
  1054. The Text Windowing Interface is $15.  Please send as a check or
  1055. money order made out to David Pabst.  US FUNDS ONLY.  If outside
  1056. of Canada or United States add $5 shipping and handling.
  1057.  
  1058. Your order will be processed as soon as it is received.
  1059.  
  1060. Send all orders to:
  1061.                           DSP Software
  1062.                          C\O David Pabst
  1063.                          18 McAdams Road
  1064.                       Framingham, MA 01701
  1065.                               U.S.A
  1066.  
  1067.  
  1068.  
  1069.  
  1070. Thank you for using and registering TWI.